import Vue from 'vue'
import VueRouter from 'vue-router'
import utils from '@/utils/wx'
import axios from '@/request/http.js'  //导入http中创建的axios实例

// //父级列表
// const list = r => require.ensure([], () => r(require('@/views/list/index')), 'list');
// //消息列表
// const list_message = r => require.ensure([], () => r(require('@/views/list/message/index')), 'list');
// //客户列表
// const list_client = r => require.ensure([], () => r(require('@/views/list/client/index')), 'list');
// //访客列表
// const list_visitor = r => require.ensure([], () => r(require('@/views/list/visitor/index')), 'list');
// //保单列表
// const list_policy = r => require.ensure([], () => r(require('@/views/list/policy/index')), 'list');
// //解析进度
// const list_analysis = r => require.ensure([], () => r(require('@/views/list/analysis/index')), 'list');
// //一休团队
// const list_team = r => require.ensure([], () => r(require('@/views/list/team/index')), 'list');
// //选择客户
// const list_pick = r => require.ensure([], () => r(require('@/views/list/pick/index')), 'list');
// //指定家庭关系
// const list_relation = r => require.ensure([], () => r(require('@/views/list/relation/index')), 'list');
// //险种列表
// const list_risk = r => require.ensure([], () => r(require('@/views/list/risk/index')), 'manual');
// //客户详情
// const detail_client = r => require.ensure([], () => r(require('@/views/detail/client/index')), 'detail');
// //保单列表
// const detail_client_policy = r => require.ensure([], () => r(require('@/views/detail/client/policy/index')), 'detail');
// //互动记录列表
// const detail_client_interaction = r => require.ensure([], () => r(require('@/views/detail/client/interaction/index')), 'detail');
// //家庭详情
// const detail_family = r => require.ensure([], () => r(require('@/views/detail/family/index')), 'detail');
// //成员列表
// const detail_family_member = r => require.ensure([], () => r(require('@/views/detail/family/member/index')), 'detail');
// //保单列表
// const detail_family_policy = r => require.ensure([], () => r(require('@/views/detail/family/policy/index')), 'detail');
// //互动记录列表
// const detail_family_interaction = r => require.ensure([], () => r(require('@/views/detail/family/interaction/index')), 'detail');
// //访客详情
// const detail_visitor = r => require.ensure([], () => r(require('@/views/detail/visitor/index')), 'detail');
// //解析进度详情
// const detail_analysis = r => require.ensure([], () => r(require('@/views/detail/analysis/index')), 'detail');
// //客户资料页
// const info_client = r => require.ensure([], () => r(require('@/views/info/client/index')), 'info');
// //保单产品页
// const info_policy = r => require.ensure([], () => r(require('@/views/info/policy/index')), 'policy');
// //产品详情页
// const info_product = r => require.ensure([], () => r(require('@/views/info/product/index')), 'policy');
// //产品条款
// const info_product_pdf = r => require.ensure([], () => r(require('@/views/info/product/pdf')), 'policy');
// //上传成功页
// const info_success = r => require.ensure([], () => r(require('@/views/info/upload/success')), 'submit');
// //录入成功页
// const info_success_manual = r => require.ensure([], () => r(require('@/views/info/upload/index')), 'manual');
// //拜访记录资料页
// const info_visit = r => require.ensure([], () => r(require('@/views/info/visit/index')), 'info');
// //险种信息
// const info_risk = r => require.ensure([], () => r(require('@/views/info/risk/index')), 'manual');
// //检视报告经典版
// const info_report_classic = r => require.ensure([], () => r(require('@/views/info/report/classic/index')), 'report');
// //检视报告经典版分享页面
// const info_report_classicShare = r => require.ensure([], () => r(require('@/views/info/report/classic/share')), 'reportShare');
// //检视报告精英版
// const info_report_elite = r => require.ensure([], () => r(require('@/views/info/report/elite/index')), 'report');
// //检视报告精英版分享页面
// const info_report_eliteShare = r => require.ensure([], () => r(require('@/views/info/report/elite/share')), 'reportShare');
// //会员卡分享
// const info_vipShare = r => require.ensure([], () => r(require('@/views/info/vipShare/index')), 'info');
// //会员卡扫码
// const info_vip_qrcode = r => require.ensure([], () => r(require('@/views/info/vipShare/share')), 'info');
// //智能提醒
// const info_reminder = r => require.ensure([], () => r(require('@/views/info/reminder/index')), 'info');
// //缺口信息提交
// const submit_gaps = r => require.ensure([], () => r(require('@/views/submit/gaps/index')), 'info');
// //保单编辑提交
// const submit_policy = r => require.ensure([], () => r(require('@/views/submit/policy/index')), 'policy');
// //保单图片上传
// const submit_upload = r => require.ensure([], () => r(require('@/views/submit/upload/index')), 'submit');
// //手动录入
// const submit_manual = r => require.ensure([], () => r(require('@/views/submit/manual/index')), 'manual');

// Vue.use(VueRouter)

// const routes = [
//   {
//     path: '/',
//     name: 'list_message',
//     component: list_message,
//     meta: {
//       title: '管家'
//     }
//   },
//   {
//     path: '/list',
//     name: 'list',
//     component: list,
//     redirect: '/list_client',
//     children: [
//       {
//         path: '/list_client',
//         name: 'list_client',
//         component: list_client,
//         meta: {
//           title: '客户'
//         },
//       },
//       {
//         path: '/list_visitor',
//         name: 'list_visitor',
//         component: list_visitor,
//         meta: {
//           title: '访客'
//         },
//       },
//       {
//         path: '/list_policy',
//         name: 'list_policy',
//         component: list_policy,
//         meta: {
//           title: '保单'
//         },
//       }
//     ]
//   },
//   {
//     path: '/list_analysis',
//     name: 'list_analysis',
//     component: list_analysis,
//     meta: {
//       title: '解析进度'
//     }
//   },
//   {
//     path: '/list_team',
//     name: 'list_team',
//     component: list_team,
//     meta: {
//       title: '一休团队'
//     }
//   },
//   {
//     path: '/list_pick',
//     name: 'list_pick',
//     component: list_pick,
//     meta: {
//       title: '选择客户'
//     }
//   },
//   {
//     path: '/list_relation',
//     name: 'list_relation',
//     component: list_relation,
//     meta: {
//       title: '指定家庭关系'
//     }
//   },
//   {
//     path: '/list_risk',
//     name: 'list_risk',
//     component: list_risk,
//     meta: {
//       title: '选择险种产品',
//       rank: true
//     }
//   },
//   {
//     path: '/detail_client',
//     name: 'detail_client',
//     component: detail_client,
//     meta: {
//       title: '客户详情'
//     },
//     redirect: '/detail_client_policy',
//     children: [
//       {
//         path: '/detail_client_policy',
//         name: 'detail_client_policy',
//         component: detail_client_policy,
//         meta: {
//           title: '客户详情'
//         },
//       },
//       {
//         path: '/detail_client_interaction',
//         name: 'detail_client_interaction',
//         component: detail_client_interaction,
//         meta: {
//           title: '客户详情'
//         },
//       }
//     ]
//   },
//   {
//     path: '/detail_family',
//     name: 'detail_family',
//     component: detail_family,
//     meta: {
//       title: '家庭详情'
//     },
//     redirect: '/detail_family_member',
//     children: [
//       {
//         path: '/detail_family_member',
//         name: 'detail_family_member',
//         component: detail_family_member,
//         meta: {
//           title: '家庭详情'
//         },
//       },
//       {
//         path: '/detail_family_policy',
//         name: 'detail_family_policy',
//         component: detail_family_policy,
//         meta: {
//           title: '家庭详情'
//         },
//       },
//       {
//         path: '/detail_family_interaction',
//         name: 'detail_family_interaction',
//         component: detail_family_interaction,
//         meta: {
//           title: '家庭详情'
//         },
//       }
//     ]
//   },
//   {
//     path: '/detail_visitor',
//     name: 'detail_visitor',
//     component: detail_visitor,
//     meta: {
//       title: '访客详情'
//     },
//   },
//   {
//     path: '/detail_analysis',
//     name: 'detail_analysis',
//     component: detail_analysis,
//     meta: {
//       title: '解析详情'
//     },
//   },
//   {
//     path: '/info_client',
//     name: 'info_client',
//     component: info_client,
//     meta: {
//       title: '个人资料'
//     }
//   },
//   {
//     path: '/info_policy',
//     name: 'info_policy',
//     component: info_policy,
//     meta: {
//       title: '保单产品'
//     }
//   },
//   {
//     path: '/info_product',
//     name: 'info_product',
//     component: info_product,
//     meta: {
//       title: '产品详情'
//     }
//   },
//   {
//     path: '/info_product_pdf',
//     name: 'info_product_pdf',
//     component: info_product_pdf,
//     meta: {
//       title: '条款'
//     }
//   },
//   {
//     path: '/info_success',
//     name: 'info_success',
//     component: info_success,
//     meta: {
//       title: '上传成功'
//     }
//   },
//   {
//     path: '/info_success_manual',
//     name: 'info_success_manual',
//     component: info_success_manual,
//     meta: {
//       title: '录入成功'
//     }
//   },
//   {
//     path: '/info_visit',
//     name: 'info_visit',
//     component: info_visit,
//     meta: {
//       title: '添加拜访记录'
//     }
//   },
//   {
//     path: '/info_risk',
//     name: 'info_risk',
//     component: info_risk,
//     meta: {
//       title: "险种信息",
//       rank: true
//     }
//   },
//   {
//     path: '/info_report_classic',
//     name: 'info_report_classic',
//     component: info_report_classic,
//     meta: {
//       title: "检视报告经典版"
//     }
//   },
//   {
//     path: '/info_report_classicShare',
//     name: 'info_report_classicShare',
//     component: info_report_classicShare,
//     meta: {
//       title: "检视报告经典版"
//     }
//   },
//   {
//     path: '/info_report_elite',
//     name: 'info_report_elite',
//     component: info_report_elite,
//     meta: {
//       title: "检视报告精英版"
//     }
//   },
//   {
//     path: '/info_report_eliteShare',
//     name: 'info_report_eliteShare',
//     component: info_report_eliteShare,
//     meta: {
//       title: "检视报告精英版"
//     }
//   },
//   {
//     path: '/info_vipShare',
//     name: 'info_vipShare',
//     component: info_vipShare,
//     meta: {
//       title: "转赠智保卡"
//     }
//   },
//   {
//     path: '/info_vip_qrcode',
//     name: 'info_vip_qrcode',
//     component: info_vip_qrcode,
//     meta: {
//       title: "转赠智保卡"
//     }
//   },
//   {
//     path: '/info_reminder',
//     name: 'info_reminder',
//     component: info_reminder,
//     meta: {
//       title: "智能提醒"
//     }
//   },
//   {
//     path: '/submit_gaps',
//     name: 'submit_gaps',
//     component: submit_gaps,
//     meta: {
//       title: '确认保障缺口'
//     }
//   },
//   {
//     path: '/submit_policy',
//     name: 'submit_policy',
//     component: submit_policy,
//     meta: {
//       title: '编辑保单'
//     }
//   },
//   {
//     path: '/submit_upload',
//     name: 'submit_upload',
//     component: submit_upload,
//     meta: {
//       title: '上传保单'
//     }
//   },
//   {
//     path: '/upload_manual',
//     name: 'upload_manual',
//     component: submit_manual,
//     meta: {
//       title: '手工录入',
//       keepAlive: true
//     }
//   },
// ]

const originalReplace = VueRouter.prototype.replace
VueRouter.prototype.replace = function replace (location) {
  return originalReplace.call(this, location).catch(err => err)
}

const router = new VueRouter({
  base: window.__POWERED_BY_QIANKUN__ ? "/policyButler" : "/",
  mode: "hash",
  routes
})

import initDb from '@/indexedDB/index'  //初始化db
initDb().then();
const permissionIgnored = ['/info_report_eliteShare','/info_report_classicShare','/info_vip_qrcode']
const signatureIgnored = ['/info_report_elite','/upload_manual','/info_report_classic','/info_vipShare','/info_visit']

router.beforeEach((to,from,next) => {
  if(to.meta.title){  //如果设置标题，拦截后设置标题
    document.title = to.meta.title
  }
  window.scroll(0, 0)
  next()
})

router.afterEach((to, from, next) =>{
  if(signatureIgnored.indexOf(to.path)<0) {
    utils.wxConfig()
  }

})

export default router
